Selamat datang di Bab 4! Saatnya keluar dari browser dan masuk ke dunia server-side. Kamu akan belajar bahasa yang menghidupkan jutaan website — dari mesin sederhana sampai aplikasi besar.
Di akhir bab ini, kamu akan mampu menulis logika program di sisi server menggunakan PHP.
Selama ini kode kamu (HTML/CSS/JS) berjalan di browser — itu disebut frontend. Tapi data login, daftar produk, dan nilai siswa disimpan di server. Kode yang berjalan di server itulah backend.
Browser minta data → PHP olah di server → kirim balik HTML jadi
Setiap kode PHP ditulis di antara tag <?php dan ?>. Perintah echo dipakai untuk menampilkan teks.
<?php // Ini komentar satu baris # Ini juga komentar /* Komentar beberapa baris */ echo "Halo, Dunia!"; echo "<br>Belajar PHP itu seru";?>
; di akhir baris, PHP akan error. Ini kesalahan #1 pemula.Variabel adalah "wadah" untuk menyimpan data. Di PHP, semua variabel diawali tanda $ (dollar).
<?php $nama = "Rifqi"; $umur = 16; $kelas = "10 RPL"; echo "Halo, " . $nama; echo " umur " . $umur; // Output: Halo, Rifqi umur 16?>
$nama ≠ $NamaSetiap data punya "jenis". PHP otomatis mengenali tipe data dari nilai yang kamu berikan.
| Tipe | Contoh | Keterangan |
|---|---|---|
| String | "Rifqi" | Teks, diapit kutip |
| Integer | 16 | Bilangan bulat |
| Float | 9.5 | Bilangan desimal |
| Boolean | true | Benar / salah |
| Null | null | Tidak ada nilai |
<?php $nama = "Rifqi"; // String $umur = 16; // Integer $tinggi = 170.5; // Float $lulus = true; // Boolean echo gettype($umur); // integer?>
Array menyimpan banyak nilai dalam satu variabel. Bayangkan sebuah loker dengan banyak kotak bernomor.
<?php // Indexed array (otomatis 0,1,2..) $buah = ["Apel", "Mangga", "Jeruk"]; echo $buah[1]; // Mangga // Associative array (pakai key) $siswa = [ "nama" => "Rifqi", "nilai" => 90 ]; echo $siswa["nama"]; // Rifqi?>
$buah[0].Operator dipakai untuk mengolah nilai: berhitung, membandingkan, atau menggabungkan kondisi.
| Aritmatika | Perbandingan | Logika |
|---|---|---|
+ tambah | == sama | && dan |
- kurang | === identik | || atau |
* kali | != beda | ! bukan |
/ bagi | > lebih besar | |
% sisa bagi | < lebih kecil |
<?php $a = 10; $b = 3; echo $a + $b; // 13 echo $a % $b; // 1 (sisa bagi) var_dump($a > $b); // bool(true) var_dump(5 == "5"); // true var_dump(5 === "5");// false?>
== membandingkan nilai saja, === membandingkan nilai dan tipe data. Selalu utamakan ===.Percabangan membuat program mengambil keputusan berdasarkan kondisi — seperti "JIKA nilai ≥ 75, MAKA lulus".
<?php $nilai = 82; if ($nilai >= 90) { echo "Nilai A - Sangat Baik"; } elseif ($nilai >= 75) { echo "Nilai B - Lulus"; } else { echo "Belum Lulus"; } // Output: Nilai B - Lulus?>
( ) harus menghasilkan true atau false.Beginilah cara komputer "berpikir" saat menjalankan percabangan — ikuti panah dari atas sampai menemukan kondisi yang benar.
if / elseif.Saat kamu membandingkan satu variabel dengan banyak nilai, switch lebih rapi daripada banyak elseif.
<?php $hari = "Senin"; switch ($hari) { case "Senin": echo "Upacara Bendera"; break; case "Jumat": echo "Senam Pagi"; break; default: echo "Belajar di kelas"; }?>
break; membuat semua case di bawahnya ikut dijalankan (fall-through).Satu variabel dicocokkan ke banyak kemungkinan. Setiap case jadi satu cabang; default menampung sisanya.
Looping mengulang perintah berkali-kali tanpa menulis ulang kode. Hemat tenaga, hemat baris.
<?php // FOR: jumlah ulangan diketahui for ($i = 1; $i <= 5; $i++) { echo "Baris ke-" . $i . "<br>"; } // Output: Baris ke-1 ... ke-5?>
<?php // WHILE: ulang selama kondisi benar $n = 1; while ($n <= 3) { echo "Hitung: " . $n . "<br>"; $n++; // jangan lupa naikkan! }?>
while, jika kondisi tidak pernah salah (lupa $n++), program akan mengulang selamanya dan hang.Inti looping = memutar kembali ke pengecekan kondisi. Selama kondisi benar, badan loop diulang; saat salah, alur keluar.
i++) → infinite loop, program hang.foreach dirancang khusus untuk menelusuri setiap elemen dalam array — tanpa perlu menghitung index manual.
<?php $nilai = [80, 90, 75]; // Tanpa key foreach ($nilai as $n) { echo "Nilai: " . $n . "<br>"; } $siswa = ["nama"=>"Rifqi", "kelas"=>"10"]; // Dengan key => value foreach ($siswa as $key => $val) { echo "$key: $val<br>"; }?>
foreach otomatis berjalan dari elemen pertama sampai terakhir array — tanpa perlu kita atur counter atau kondisi.
Function adalah blok kode yang diberi nama dan bisa dipanggil berulang. Tulis sekali, pakai berkali-kali.
<?php // Definisi: parameter $a dan $b function tambah($a, $b) { return $a + $b; } function sapa($nama) { return "Halo, " . $nama . "!"; } // Pemanggilan echo tambah(5, 3); // 8 echo sapa("Rifqi"); // Halo, Rifqi!?>
( )Function itu seperti "mesin": kita kirim input (parameter), mesin memproses, lalu return hasil ke tempat ia dipanggil.
echoreturn) menandakan data keluar dari fungsi — output dari "mesin".Gabungkan semua yang kamu pelajari: array, foreach, function, dan percabangan menjadi satu program nyata.
<?php $siswa = [ ["nama"=>"Rifqi", "nilai"=>90], ["nama"=>"Sahil", "nilai"=>72], ["nama"=>"Dina", "nilai"=>85] ]; function status($n) { return $n >= 75 ? "LULUS" : "REMIDI"; } foreach ($siswa as $s) { echo $s["nama"] . " = " . status($s["nilai"]) . "<br>"; }?>
Buatlah sebuah file PHP yang menyimpan biodata dirimu menggunakan variabel dengan tipe data yang sesuai, lalu tampilkan ke layar.
$nama (string), $umur (integer), $tinggi (float), dan $pelajar (boolean).echo dan concatenation ( . ).gettype() untuk menampilkan tipe data $tinggi.💡 Tips: Screenshot slide ini untuk dikerjakan di editor PHP (XAMPP / online seperti onlinephp.io).
Gabungkan looping dan percabangan untuk mengklasifikasikan angka.
for untuk menghitung dari 1 sampai 20.if/else: jika angka genap (gunakan % 2 == 0), tampilkan "[angka] - Genap".💡 Tantangan: Bisakah kamu membuatnya hanya dengan satu blok for? Pikirkan urutan pengecekan kondisinya.
Kembangkan mini project di Slide 14 menjadi aplikasi yang lebih lengkap. Terapkan SEMUA konsep Bab 4.
nama, nilai_uts, dan nilai_uas.hitungRata($uts, $uas) yang mengembalikan nilai rata-rata.getGrade($rata) yang mengembalikan huruf: A (≥90), B (≥80), C (≥70), D (<70) — gunakan if/elseif atau switch.foreach untuk menampilkan tabel: Nama | Rata-rata | Grade | Status (Lulus/Remidi).tugas-bab4.php + screenshot hasil running. Deadline sesuai instruksi guru.🎉 Selamat! Kamu telah menyelesaikan Bab 4 — PHP Dasar. Backend pertamamu sudah di tangan!